rs23
(usa Ubuntu)
Enviado em 24/12/2010 - 01:16h
Gostaria de saber como eu calculo os elementos da diagonal secundária da matriz n qualquer definida pelo usuário
Estou tentando fazer assim:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
float produto_diagonal_secundaria( float **, int ); /*protótipo da função*/
int main(void)
{
int i = 0;
int j = 0;
float **mat; /** Um ponteiro para x e outro para y **/
int n = 0;
printf( "\nDigite o tamanho da matriz: " );
scanf( "%d", &n );
mat = malloc( sizeof(float *) * n );
for( i = 0; i < n; i++ )
mat[i] = malloc( sizeof(float) * n );
printf( "\n\nO produto dos elementos da diagonal principal da matriz é: %f ", produto_diagonal_secundaria(mat, n) );
for( i = 0; i < n; i++ )
free( mat[i] );
free( mat );
return 0;
}
/*Programa principal*/
float produto_diagonal_secundaria( float **mat, int n )
{
float produto_diagonal_secundaria = 1; //inicializa o produto da diagonal principal com 1
int i, j;
for( i = 0; i < n; i++ )
{
for( j = 0; j < n; j++ )
{
printf( "Digite os valores da matriz: " );
scanf( "%f", &mat[i][j] );
//verifica a diagonal secundaria
if (j==n-i)
produto_diagonal_secundaria = produto_diagonal_secundaria * mat[i][j];
}
}
//monta a matriz
for( i = 0; i < n; i++ )
{
for( j = 0; j < n; j++ )
{
printf( "%0.f ", mat[i][j] );
}
printf( "\n" );
}
printf("O valor da multiplicacao da diagonal principal eh %0.f", produto_diagonal_secundaria);
getche();
}
o resultado obtido sempre e o valor n digitado pelo usuário como fazer para calcular apenas os valores da diagonal secundária.